Error correction is one measure for obtaining correct data from a source such as memory or a transmitter. Error correction may reduce the costs involved with implementing the data source as a higher data rate is acceptable due to the data correction capability. Such error correction is used, for example, for memory data stored in a RAM (random access memory), ROM (read only memory), cache memory, EEPROM (electrically erasable programmable read-only memory), and even hard drives, CDs (compact discs), DVDs (digital versatile discs), magnetic tapes and the like. In forward error correction, the data to be protected against data corruption is, in units of data words, for example, mapped onto codewords. In accordance with systematic codes, codewords include the data word to be protected plus some error correction code. Many such systematic codes are available, such as Reed Solomon codes, for example.
However, an error correction capability not only increases the demands imposed on the data source, but also increases the amount of data due to the addition of redundancy and the data latency due to the granularity at which the data is protected.